home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / progem.arc / sources.arc / GEMC10.C next >
Text File  |  1987-10-05  |  1KB  |  46 lines

  1. >>>>>>>>>>> Demonstration of byte alignment of window interior <<<<<<<<<<<
  2.  
  3. #define FEATURES    0x0fef    /* what border features are used   */
  4. WORD    msg[8];            /* message from evnt_multi       */
  5. GRECT    work_area;        /* defines working area        */
  6. WORD    w_hndl;            /* handle for window being changed */
  7.  
  8.     wind_calc(1, FEATURES, msg[4], msg[5], msg[6], msg[7], 
  9.         &work_area.g_x, &work_area.g_y, &work_area.g_w, 
  10.         &work_area.g_h);
  11.     work_area.g_x = align_x(work_area.g_x);
  12.     work_area.g_w = align_x(work_area.g_w);
  13.     wind_calc(0, FEATURES, work_area.g_x, work_area.g_y, 
  14.         work_area.g_w, work_area.g_h, &msg[4], &msg[5], 
  15.         &msg[6], &msg[7]); 
  16.     wind_set(w_hndl, WF_CXYWH, msg[4], msg[5], msg[6], msg[7]);
  17.  
  18. >>>>>>>>>>>>>>>>>>>>> Subroutine for above <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  19.  
  20.     WORD
  21. align_x(x)        /* forces word alignment for column position    */
  22.     WORD    x;        /*   rounding to nearest word        */
  23.     {
  24.     return((x & 0xfff0) + ((x & 0x0008) ? 0x0010 : 0));
  25.     }    
  26.  
  27. >>>>>>>>>>>>>>>>>>>>> Standard v_gtext binding <<<<<<<<<<<<<<<<<<<<<<<<<
  28.  
  29.     WORD
  30. v_gtext( handle, x, y, string)
  31.     WORD handle, x, y;
  32.     BYTE *string;
  33.     {
  34.     WORD i;
  35.     ptsin[0] = x;
  36.     ptsin[1] = y;
  37.     i = 0;
  38.     while (intin[i++] = *string++)    /* Copy characters to intin    */
  39.         ;            /* There is NO error checking! */
  40.     contrl[0] = 8;
  41.     contrl[1] = 1;
  42.     contrl[3] = --i;
  43.     contrl[6] = handle;
  44.     vdi();
  45.     }
  46.